System and method for managing master-slave relationships within a network

ABSTRACT

A system and method for managing the relationship between master devices and slave devices within a network such as a Bluetooth network. Each time that a master device connects to a slave device, the network topology is updated. This update is transmitted to each slave device, sending the node&#39;s properties for each slave device belonging to the network, as well as an update on the priority number given to each slave device. When a master device abruptly exits the network, a slave device with the highest priority configures itself as the master device. The new master device then attempts to connect to the other slave devices using previously-stored information.

FIELD OF THE INVENTION

The present invention relates generally to master-slave systemsoperating within a network. More particularly, the present inventionrelates to master-slave systems within a network where the master deviceabruptly exits the network.

BACKGROUND OF THE INVENTION

In recent years, multiplayer games have exploded in popularity aroundthe words. In action/adventure games, sports-based games, and others,several individuals are capable of playing the same game at the sametime. Traditionally, this has involved the use of multiple joysticks orgame pads which are all connected to a central computer or game unit.More recently, however, users have been able to play such games acrosslarger networks, ranging in size from a single room to the Internet.

One example of a larger network across which such games can be played isa Bluetooth network. Bluetooth is a standard for wireless communicationsbetween devices in a personal area network (PAN) using radio frequencyfor a relatively short range. Bluetooth technology eliminates the needfor numerous and inconvenient cable attachments for connecting fixedcomputers, mobile phones, mobile computers, handheld devices, digitalcameras, digital appliances and other devices.

Bluetooth networks can be created in an ad-hoc way to enableapplications for multiple users to simultaneously play a single game.This is accomplished through a master-slave system, which is theenvironment in which a Bluetooth network operates. A Bluetooth networkhas a master device and several slave devices. The master devicecontrols the traffic flow within the Bluetooth network. From the pointof view of the application, a game for example, the master acts as aserver relaying the application's state to all the hosts in the network.The master is the only member that knows the topology of the network.

Although the master-slave system provides the ability for theinteraction between multiple devices, it possesses significantdrawbacks. Due to the nature of Bluetooth networks, any device candisappear at any moment. In the case where a slave device abruptlyleaves the network, the master device is still connected to the otherslave devices, and the application can adapt to the new topology. If themaster device leaves the network at any moment, on the other hand, ittakes a significant amount of time to re-establish the network. Aprincipal problem in this situation is the face that the slave do notknow the existence of the other slave devices. Therefore, the networkessentially disappears when the master device leaves the network. Thisleads to the termination of the application. In multiplayer games, thisis extremely undesirable from the players'0 points of view.

It would therefore be desirable to provide a method and system forreconstructing a network in the situation where the master device leavesthe network so that the application can continue to operate.

SUMMARY OF THE INVENTION

The present invention involves a system and method for addressing theabove-identified issues by propagating the network topology to eachslave device in the network when the network is constructed. Thetopology is defined by each node's data, which is comprised primarily ofthe node's Bluetooth address and service identification for each memberof the network. Additionally, a unique priority number is provided toeach slave device.

Every time that the master device connects to a slave device, thenetwork topology is updated and transmitted to each slave device. Atthis time, the node's properties are transmitted to each slave devicebelonging to the network. An update on the priority number is alsoprovided to each slave device. In a situation where a slave deviceleaves the network, the topology data is again relayed to the othermembers of the network.

In a situation where the master device abruptly exits the network, theslave device with the highest priority take the role of the masterdevice and attempts to rebuild the network based on the last topologyknown to that particular slave device. Assuming that the state of theapplication-in-use is known, the application continues to run in the newnetwork.

The system and method of the present invention allow a particularapplication to continue operating in a variety of situations, even in asituation where the master device is removed from the network. Thisprovides a significant advantage to users of multiplayer applications,such as multiplayer video games, where previously such an even couldcause major disruptions to the use and enjoyment of the application.

These and other objects, advantages and features of the invention,together with the organization and manner of operation thereof, willbecome apparent from the following detailed description when taken inconjunction with the accompanying drawings, wherein like elements havelike numerals throughout the several drawings described below.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an overview diagram of a system within which the presentinvention may be implemented;

FIG. 2 is a perspective view of a mobile telephone that can be used inthe implementation of the present invention;

FIG. 3 is a schematic representation of the telephone circuitry of themobile telephone of FIG. 2;

FIG. 4 is a perspective view of a gaming device within which the presentinvention may be implemented;

FIG. 5 is a representation of a master device and multiple slave devicesoperating within a network according the principles of the presentinvention;

FIG. 6 is a flow chart showing the implementation of one embodiment ofthe present invention;

FIG. 7 is a representation of a software stack used by the presentinvention; and

FIG. 8 is a diagram showing a message structure that is used accordingto one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 shows a system 10 in which the present invention can be utilized,comprising multiple communication devices that can communicate through anetwork. The system 10 may comprise any combination of wired or wirelessnetworks including, but not limited to, a mobile telephone network, awireless Local Area Network (LAN), a Bluetooth personal area network, anEthernet LAN, a token ring LAN, a wide area network, the Internet, etc.The system 10 may include both wired and wireless communication devices.

For exemplification, the system 10 shown in FIG. 1 includes a mobiletelephone network 11 and the Internet 28. Connectivity to the Internet28 may include, but is not limited to, long range wireless connections,short range wireless connections, and various wired connectionsincluding, but not limited to, telephone lines, cable lines, powerlines, and the like.

The exemplary communication devices of the system 10 may include, butare not limited to, a mobile telephone 12, a combination PDA and mobiletelephone 14, a PDA 16, an integrated messaging device (IMD) 18, adesktop computer 20, and a notebook computer 22. The communicationdevices may be stationary or mobile as when carried by an individual whois moving. The communication devices may also be located in a mode oftransportation including, but not limited to, an automobile, a truck, ataxi, a bus, a boat, an airplane, a bicycle, a motorcycle, etc. Some orall of the communication devices may send and receive calls and messagesand communicate with service providers through a wireless connection 25to a base station 24. The base station 24 may be connected to a networkserver 26 that allows communication between the mobile telephone network11 and the Internet 28. The system 10 may include additionalcommunication devices and communication devices of different types. Acommunication device may communicate using various media including, butnot limited to, radio, infrared, laser, cable connection, and the like.One such portable electronic device incorporating a wide variety offeatures is shown in FIG. 4 and is marketed by Nokia Corporation underthe N-GAGE trademark. This particular product serves as both a videogaming device and a portable telephone.

The communication devices may communicate using various transmissiontechnologies including, but not limited to, Code Division MultipleAccess (CDMA), Global System for Mobile Communications (GSM), UniversalMobile Telecommunications System (UMTS), Time Division Multiple Access(TDMA), Frequency Division Multiple Access (FDMA), Transmission ControlProtocol/Internet Protocol (TCP/IP), Short Messaging Service (SMS),Multimedia Messaging Service (MMS), e-mail, Instant Messaging Service(IMS), Bluetooth, IEEE 802.11, etc.

FIGS. 2 and 3 show one representative mobile telephone 12 within whichthe present invention may be implemented. It should be understood,however, that the present invention is not intended to be limited to oneparticular type of mobile telephone 12 or other electronic device. Forexample, the present invention can be incorporated into the N-Gagediscussed above. The mobile telephone 12 of FIGS. 2 and 3 includes ahousing 30, a display 32 in the form of a liquid crystal display, akeypad 34, a microphone 36, an ear-piece 38, a battery 40, an infraredport 42, an antenna 44, a smart card 46 in the form of a universalintegrated circuit card (UICC) according to one embodiment of theinvention, a card reader 48, radio interface circuitry 52, codeccircuitry 54, a controller 56 and a memory 58. Individual circuits andelements are all of a type well known in the art, for example in theNokia range of mobile telephones.

As discussed previously, the present invention addresses the issue ofthe conventional master-slave arrangement that exists in a conventionalBluetooth multiplayer environment. As shown in FIG. 5, the presentinvention involves the propagation of the network topology to each of aplurality of slave devices 110 when the larger network 120 is initiallyconstructed. The topology is defined by each node's data, whichbasically comprises the Bluetooth address and service identificationsfor each member of the network. Additionally a unique priority number isgiven to each slave device 110 at upon initiation of the network 120.For example, the slave device 110 that will be the next device in lineto become a master device will be assigned a priority of 0, the nextdevice in line will be assigned a priority of 1, etc. In one embodimentof the invention, the master device 100 is responsible for assigning thepriority numbers to the respective slave devices 110. Various criteriacan be used for assigning priority to the respective slave devices 110.These criteria can relate to hardware capabilities (such as the degreeto which each slave device can act as a multipoint master), softwarecapabilities, and others. However and in general, a lower numberindicates a higher priority. Therefore, the slave device 110 thatassigned a priority level of 0 will be provided with the firstopportunity to assume the role of the master device 100.

According to the principles of the present invention, each time that amaster device 100 connects to a slave device 110, the network topologyis updated. This update is transmitted to each slave device 110, sendingthe node's properties for each slave device 110 belonging to the network120, as well as an update on the priority number given to each slavedevice 110.

In the situation where a slave device 110 leaves the network 120, thetopology data for the network 120 is again relayed to the other membersof the network 120. In summary, every time that the topology changes,every member of the network 120 obtains an updated view of the network120, as well as the priority of each slave device 110.

In the event that the master device 100 abruptly leaves the network 120,then the slave device 110 with the highest priority takes the masterdevice's role. This normally corresponds to the slave device 110 have apriority level of 0. In certain situations, the slave device 110 with a0 priority level will not be available. In such a case, the slave device110 with the next priority will take over the role of the master device100 after a defined timeout period. The slave device 110 with thehighest priority then attempts to rebuild the network 120 based on thelast topology. This slave device 110 will know the topology of thenetwork 120 from the most recent update, and it will therefore be ableto attempt to reconnect to the other slave devices 110 in the newlyknown network 120. After the new network is connected, the procedurediscussed above is repeated for the new network.

The system and method of the present invention can be implemented at theBluetooth protocol level or at the application level. According to oneembodiment of the invention, this protocol can be implemented at theapplication level as shown in FIG. 7. The present invention can also beimplemented in current electronic devices supporting Bluetoothtechnology.

One system for implementing the present invention involves the use ofthe Java™ application program interfaces (APIs) for Bluetoothtechnology. This implementation uses the radio frequency communication(RFCOMM) profile and assumes a simple application-level protocol betweenmaster devices 100 and slave devices 110. Similar solutions can beimplemented on logical link control and adaptation protocol (L2CAP) orusing a different application-level protocol. The solution offered bythe present invention is also not dependant on the Java™ API forBluetooth and can be implemented on any application level Bluetooth APIsuch as Symbian, BlueZ, etc.

According to one embodiment of the present invention, theapplication-level protocol is as follows: 2 bytes msg length, 2 bytesmsg id, data. These fields are depicted in FIG. 8. As shown in FIG. 8,the first two bytes determine the length of the date. The msg id bytesdefine the purpose of the message. A particular value agreed tobeforehand can be used to update the network topology information. Forinstance the value 0 can be used to indicate such an update. Thatmessage will be followed by the network topology encoded in a properway. For instance, the network topology could start with the prioritynumber assigned to each specific slave, followed by the count of slavesand the address of each slave. Other values can also be used forapplication level messages. An example of this type of message is alsoshown in FIG. 8.

Every time that a slave device 110 contacts or disconnects from thenetwork 120, the master device 100 updates its internal network topologywith the latest set of slave devices 110. Afterwards, this data isrelayed to each slave device 110 using the message format mentionedabove. The data portion of the message contains, first, the prioritynumber for the given slave device 110, followed by a set of URLs foreach other clients connected to the network. In one embodiment of theinvention, the URLs conform to the format used by the Java JSR-82specification. Upon receiving the message discussed above, each slavedevice 110 in the network 120 updates its internal representation of thenetwork topology.

FIG. 6 is a flow chart showing a generic implementation of the presentinvention. At step 200, a network 120 is established, including a masterdevice 100 and a plurality of slave devices 110. At step 210, the masterdevice 100 abruptly exits the network 120. At this point and at step220, the slave device 110 with the highest priority configures itself asthe master device 100. At step 230, the new master device 100 attemptsto connect to the other slave devices 110 using the informationpreviously stored. It is also possible for the provision of the abilityto detect multipoint capabilities on the slave devices 110 so that onlythose capable of being master devices 100 to multiple slave devices 110can obtain the highest priority.

A specific priority list is maintained in each of the slave devices 110.This is represented at step 205. The list defines the priority of theslave devices 110 of the network 120, so that it is known for each slavedevice 110 which member of the network 120 is going to act as the newmaster device 100 in the case of a master device failure. Additionally,the step of updating the internal network topology when a slave device110 enters or exits the network 120 is represented at step 215.

The present invention is described in the general context of methodsteps, which may be implemented in one embodiment by a program productincluding computer-executable instructions, such as program code,executed by computers in networked environments.

Generally, program modules include routines, programs, objects,components, data structures, etc. that perform particular tasks orimplement particular abstract data types. Computer-executableinstructions, associated data structures, and program modules representexamples of program code for executing steps of the methods disclosedherein. The particular sequence of such executable instructions orassociated data structures represents examples of corresponding acts forimplementing the functions described in such steps.

Software and web implementations of the present invention could beaccomplished with standard programming techniques with rule-based logicand other logic to accomplish the various database searching steps,correlation steps, comparison steps and decision steps. It should alsobe noted that the words “component” and “module” as used herein, and inthe claims, is intended to encompass implementations using one or morelines of software code, and/or hardware implementations, and/orequipment for receiving manual inputs.

The foregoing description of embodiments of the present invention havebeen presented for purposes of illustration and description. It is notintended to be exhaustive or to limit the present invention to theprecise form disclosed, and modifications and variations are possible inlight of the above teachings or may be acquired from practice of thepresent invention. The embodiments were chosen and described in order toexplain the principles of the present invention and its practicalapplication to enable one skilled in the art to utilize the presentinvention in various embodiments and with various modifications as aresuited to the particular use contemplated.

1. A method of establishing a connection between a plurality ofelectronic devices, comprising: determining a priority level associatedwith each of the plurality of electronic devices; deciding, based uponthe priority level, whether each of the plurality of electronic devicesis to operate as a slave device or as a master device, and for a devicethat is to operate as a master device, having the master device attemptto connect to each of the plurality of electronic devices that is tooperate as a slave device.
 2. The method of claim 1, further comprisingpropagating the master device's network topology to each of the slavedevices within the network.
 3. The method of claim 1, furthercomprising: upon the entrance or exit of a slave device, having themaster device update its internal network topology with the latest setof slave devices; and transmitting the updated internal network topologyto each of the slave devices.
 4. The method of claim 3, wherein theinternal network topology includes the priority level for each of theplurality of slave devices within the network.
 5. The method of claim 1,further comprising: upon the master device exiting the network, havingone of the remaining electronic devices with the highest priority levelconfigure itself to serve as a new master device; and having the newmaster device attempt to connect to the rest of the plurality ofelectronic devices.
 6. The method of claim 3, further comprising thestep of, upon receiving the updated internal network topology, havingeach of the plurality of slave devices update their own internalrepresentation of the network topology.
 7. The method of claim 1,wherein only ones of the plurality of slave devices that are capable ofserving as new master devices are capable of obtaining the highestpriority level.
 8. A computer program product for establishing aconnection between a plurality of electronic devices within a network,comprising: computer code for determining a priority level associatedwith each of the plurality of electronic devices; computer code fordeciding, based upon the priority level, whether each of the pluralityof electronic devices is to operate as a slave device or as a masterdevice, and computer code for, for a device that is to operate as amaster device, having the master device attempt to connect to each ofthe plurality of electronic devices that is to operate as a slavedevice.
 9. The computer program product of claim 8, further comprisingcomputer code for propagating the master device's network topology toeach of the slave devices within the network.
 10. The computer programproduct of claim 8, further comprising: computer code for, upon theentrance or exit of a slave device, having the master device update itsinternal network topology with the latest set of slave devices; andcomputer code for transmitting the updated internal network topology tothe plurality of slave devices.
 11. The computer program product ofclaim 10, wherein the internal network topology includes the prioritylevel for each of the plurality of slave devices.
 12. The computerprogram product of claim 8, further comprising: computer code for, uponthe master device exiting the network, having one of the remainingelectronic devices with the highest priority level configure itself toserve as a new master device; and computer code for having the newmaster device attempt to connect to the rest of the plurality ofelectronic devices.
 13. The computer program product of claim 10,further comprising computer code for, upon receiving the updatedinternal network topology, having each of the plurality of slave devicesupdate their own internal representation of the network topology. 14.The computer program product of claim 8, wherein only ones of theplurality of slave devices that are capable of serving as new masterdevices are capable of obtaining the highest priority level.
 15. Thecomputer program product of claim 8, wherein the computer programproduct establishes the connection between electronic devices at anapplication level
 16. A system for maintaining a relationship among aplurality of electronic devices, comprising: a master device; and aplurality of slave devices, each of the plurality of slave devicesincluding a priority level, wherein a change in an existing networkincluding the master device and the plurality of slave devices, the oneof the plurality of slave devices with the highest priority levelconfigures itself to serve as a new master device and attempts toconnect to the other devices within the network.
 17. The system of claim16, wherein the master device propagates its network topology to each ofthe slave devices within the network.
 18. The system of claim 16,wherein, upon the entrance or exit of a slave device from the network,the master device updates its internal network topology with the latestset of slave devices and transmits the updated internal network topologyto the plurality of slave devices within the network.
 19. The system ofclaim 18, wherein the internal network topology includes the prioritylevel for each of the plurality of slave devices.
 20. The system ofclaim 18, wherein the internal network topology includes a set of URL'sfor other devices connected to the network.
 21. The system of claim 18,wherein, upon receiving the updated internal network topology, each ofthe plurality of slave devices within the network updates their owninternal representation of the network topology.
 22. A terminal forestablishing a connection with a plurality of remote terminals within anetwork, comprising: a processor; and a memory unit operativelyconnected to the processor and including: computer code for determininga priority level in relation to each of the plurality of remoteterminals; computer code for deciding, based upon the priority level,whether the terminal is to operate as a slave device or as a masterdevice, and computer code for, if the terminal is to operate as themaster device, attempting to connect to each of the plurality of remoteterminals that are to operate as slave devices.
 23. The terminal ofclaim 22, wherein the memory unit further includes: computer code for,if a remote terminal is acting as the master device but exits thenetwork, determining whether the terminal has the highest remainingpriority level in relation to the remaining remote terminals; andcomputer code for, if the terminal has the highest remaining prioritylevel, attempting to connect to each of the plurality of remoteterminals so as to serve as the master device.